package global

import (
	"fmt"
	log "code.google.com/p/log4go"
	"errors"
)

func CheckCondigErr() error{

	tasks := Config().Tasks
	for index := range tasks {
		task := tasks[index]
		if task.IsUse {
			//如果存储到Hbase时，即要求转大写，又要求转小写，为自相矛盾的配置，提示错误
			if task.ToLower && task.ToUpper {
				errstr := fmt.Sprintf(
					"task name [%s]  toLower and toUpper  must not all be true, your config : toLower[%t] ToUpper[%t]",
					task.TaskName,task.ToLower,task.ToUpper)
				log.Error(errstr)
				return errors.New(errstr)
			}
			//如果任务类型为往Hbase同步数据，不删除mysql中的数据，则task.SyncValue和task.SyncColumn不能为空
			if !task.Delete && !task.OnlyDelete && (task.SyncValue=="" || task.SyncColumn==""){
				errstr := fmt.Sprintf(
					"task name [%s]  task.Delete is false,task.OnlyDelete is false , so task.SyncValue and " +
						"task.SyncColumn must not be empty。your config: task.SyncColumn[%s],task.SyncValue [%s]",
					task.TaskName,task.SyncColumn,task.SyncValue)
				log.Error(errstr)
				return errors.New(errstr)
			}
			//taskName为空 抛出异常
			if task.TaskName==""{
				errstr := fmt.Sprintf(
					"taskName [%s] must not be null",
					task.TaskName)
				log.Error(errstr)
				return errors.New(errstr)
			}
		}
	}
	return nil
}
